package mystudy
// 错误处理
import (
	"fmt"
	"errors"
)

func DemoErrorDetail(){
	// 捕获异常错误
	defer func(){
		if err := recover(); err != nil {
			fmt.Println("捕获到异常代码")
			fmt.Println("err:", err)
		}else{
		    fmt.Println("代码正常执行")
		}
	}()
	fmt.Println("------错误处理------")
	num1 := 12
	num2 := 0
	result := num1 / num2
	fmt.Println(result)
}

func DemoErrorDetail2() (result int, err error){
	// 捕获异常错误
	defer func(){
		if err := recover(); err != nil {
			fmt.Println("捕获到异常代码")
			fmt.Println("err:", err)
			result = 99
		}else{
		    fmt.Println("代码正常执行")
		}
	}()
	fmt.Println("------错误处理------")
	num1 := 12
	num2 := 0
	result = num1 / num2
	fmt.Println(result)
	return result, nil
}

func SelfError()(int, error){
	fmt.Println("------自定义错误------")
	var num int = 1
	if num == 1{
		return 0, errors.New("num不能为1")
	}else{
		fmt.Println("num=", num)
		return num, nil
	}
}